﻿<ExtensionModel>

	<!-- Extension Points -->
	<ExtensionPoint path = "/MonoDevelop/CSharp/Completion/ContextHandler">
		<ExtensionNode name="Class"/>
	</ExtensionPoint>

	<!-- Extensions -->

	<Extension path = "/MonoDevelop/Ide/Commands">
		<Category _name = "Edit" id="Edit">

		<Command id = "MonoDevelop.CodeGeneration.CodeGenerationCommands.ShowCodeGenerationWindow"
				_label = "Show Code _Generation"
				shortcut = "Alt|Insert"
				macShortcut = "Meta|I" />
		</Category>

		<Category _name = "Code Navigation" id = "CodeNavigation">

		<Command id = "MonoDevelop.CSharp.Refactoring.FindProjectReferenceUsages"
			defaultHandler = "MonoDevelop.CSharp.Refactoring.FindProjectReferenceUsagesHandler"
			_label = "_Find Reference Usages"
			macShortcut = "Meta+F12" />
		<Command id = "MonoDevelop.CSharp.Navigation.FindExtensionMethods"
			defaultHandler = "MonoDevelop.CSharp.Navigation.FindExtensionMethodsHandler"
			_label = "Extension Methods"
			_displayName = "Find Extension Methods"/>
		<Command id = "MonoDevelop.Refactoring.Navigation.FindBaseSymbols"
			defaultHandler = "MonoDevelop.CSharp.Navigation.FindBaseSymbolsHandler"
			_label = "Base Symbols"
			_displayName = "Find Base Symbols"/>
		<Command id = "MonoDevelop.Refactoring.Navigation.FindDerivedSymbols"
			defaultHandler = "MonoDevelop.CSharp.Refactoring.FindDerivedSymbolsHandler"
			_label = "Derived Symbols"
			_displayName = "Find Derived Symbols"/>
		<Command id = "MonoDevelop.CSharp.Navigation.FindMemberOverloads"
			defaultHandler = "MonoDevelop.CSharp.Navigation.FindMemberOverloadsHandler"
			_label = "Member Overloads"
			_displayName = "Find Member Overloads"/>
		<Command id = "MonoDevelop.CSharp.Navigation.FindImplementingMembers"
			defaultHandler = "MonoDevelop.CSharp.Navigation.FindImplementingMembersHandler"
			_label = "Implementing Members"
			_displayName = "Find Implementing Members"/>
		</Category>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/Commands/Refactoring">
<!--		<Command id = "MonoDevelop.Refactoring.RefactoryCommands.Resolve"
				defaultHandler = "MonoDevelop.CSharp.Refactoring.ResolveCommandHandler"
				type="array"
				_label = "Resolve"/> -->
		<Command id = "MonoDevelop.CSharp.Refactoring.ExtractMethodCommand"
			defaultHandler = "MonoDevelop.CSharp.Refactoring.ExtractMethodCommandHandler"
			_label = "Extract Method"
			_description = "Extracts a method"
		/>
		<Command id = "MonoDevelop.Refactoring.RefactoryCommands.CurrentRefactoryOperations"
			defaultHandler = "MonoDevelop.CSharp.Refactoring.CurrentRefactoryOperationsHandler"
			type="array"
			_label = "Refactory Operations" />
		<Command id = "MonoDevelop.CSharp.Refactoring.Commands.SortAndRemoveImports"
			defaultHandler = "MonoDevelop.CSharp.Refactoring.RemoveAndSortUsingsHandler"
			_label = "R_emove and Sort Usings"
			_displayName = "Remove Unused and Sort (Usings)"
		/>
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/MSBuildItemTypes">
		<DotNetProjectType
			id="MonoDevelop.CSharp.Project.CSharpProject"
			language="C#"
			extension="csproj"
			guid="{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
			type="MonoDevelop.CSharp.Project.CSharpProject"
			/>
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/ProjectModelExtensions">
		<Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath)\Microsoft\Portable\v4.0\Microsoft.Portable.CSharp.targets">
			<ProjectFlavor guid="{786C830F-07A1-408B-BD7F-6EE04809D6DB}" type="MonoDevelop.CSharp.Project.PortableCSharpProjectFlavor" language="C#" alias="C#PortableLibrary"/>
		</Condition>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/FileTemplates">
		<FileTemplate id = "CSharpEmptyFile" resource = "EmptyCSharpFile.xft.xml"/>
		<FileTemplate id = "CSharpAssemblyInfo" resource = "AssemblyInfo.xft.xml"/>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/ProjectTemplates">
		<ProjectTemplate id = "MonoDevelop.CSharp.ConsoleProject" resource = "ConsoleProject.xpt.xml"/>
		<ProjectTemplate id = "MonoDevelop.CSharp.EmptyProject" resource = "EmptyProject.xpt.xml"/>
		<ProjectTemplate id = "MonoDevelop.CSharp.GtkSharp2Project" resource = "GtkSharp2Project.xpt.xml"/>
		<ProjectTemplate id = "MonoDevelop.CSharp.Library" resource = "Library.xpt.xml"/>
		<ProjectTemplate id = "MonoDevelop.CSharp.SharedProject" resource = "SharedAssetsProject.xpt.xml"/>
		<Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath)\Microsoft\Portable\v4.0\Microsoft.Portable.CSharp.targets">
			<ProjectTemplate id = "MonoDevelop.CSharp.PortableLibrary" resource = "PortableLibrary.xpt.xml" />
		</Condition>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/FileFilters">
		<FileFilter id = "CSharp"
		            insertbefore = "Assemblies"
		            _label = "C# Files"
		            extensions = "*.cs"/>
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/Gui/ItemOptionPanels/Build/General">
		<Condition id="ProjectTypeId" value="C#">
			<Panel id = "CSharpCompilerOptionsPanel"
			             _label = "C#"
			             class = "MonoDevelop.CSharp.Project.CompilerOptionsPanel"/>
		</Condition>
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/Gui/ItemOptionPanels/Build/Compiler">
		<Condition id="ProjectTypeId" value="C#">
			<Panel id = "CSharpCodeGenerationPanel"
			             _label = "Compiler"
			             class = "MonoDevelop.CSharp.Project.CodeGenerationPanel"/>
		</Condition>
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/LanguageBindings">
		<LanguageBinding id = "C#"
		                 extensions = ".cs"
		                 singleLineCommentTag = "//"
		                 blockCommentStartTag = "/*"
		                 blockCommentEndTag = "*/"
		                 codeDomType = "MonoDevelop.CSharp.CSharpEnhancedCodeProvider" />
	</Extension>

	<Extension path = "/MonoDevelop/Ide/ReferenceFinder">
		<ReferenceFinder supportedmimetypes = "text/x-csharp"
		                 class = "MonoDevelop.CSharp.Refactoring.CSharpReferenceFinder" />
	</Extension>

	<Extension path = "/MonoDevelop/Ide/TextEditorExtensions">
		<!-- indent engine must be before the completion text editor engine,
		otherwise stuff like

		int Foo {
		         get;private set';'

		will end up as

		int Foo {
		         get;
		         privaet;

		-->
		<Class fileExtensions = ".cs" class = "MonoDevelop.CSharp.Formatting.CSharpTextEditorIndentation" />
		<Class fileExtensions = ".cs" class = "MonoDevelop.CSharp.Completion.CSharpCompletionTextEditorExtension" />
		<Class fileExtensions = ".cs" class = "MonoDevelop.CSharp.Highlighting.HighlightUsagesExtension" />
		<Class fileExtensions = ".cs" class = "MonoDevelop.CSharp.PathedDocumentTextEditorExtension" />
		<Class fileExtensions = ".cs" class = "MonoDevelop.CSharp.UnitTestTextEditorExtension" />
		<Class fileExtensions = ".cs" class = "MonoDevelop.CSharp.ClassOutline.CSharpOutlineTextEditorExtension" />
		<Class fileExtensions = ".cs" class = "MonoDevelop.CSharp.CSharpNavigationTextEditorExtension" />
		<Class fileExtensions = ".json" class = "MonoDevelop.JSon.JSonTextEditorExtension" />
		<Class class = "MonoDevelop.CSharp.Refactoring.CSharpFeaturesTextEditorExtension" />
	</Extension>

	<Extension path = "/MonoDevelop/Core/StockIcons">
		<StockIcon stockid = "md-csharp-file" icon = "md-file-source" size="Menu" />
		<StockIcon stockid = "md-csharp-project" icon = "md-project" size="Menu"/>
	</Extension>

	<Extension path = "/MonoDevelop/Core/MimeTypes">
		<MimeType id="text/x-csharp" _description="C# source code" icon="md-csharp-file" isText="true" roslynName="C#" contentType="CSharp">
			<File pattern="*.cs" />
			<File pattern="*.csx" />
		</MimeType>
		<MimeType id="application/x-csproject" _description="C# project file" baseType="application/x-msbuild">
			<File pattern="*.csproj" />
		</MimeType>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/CodeFormatters">
		<Formatter mimeType="text/x-csharp" class="MonoDevelop.CSharp.Formatting.CSharpFormatter" />
	</Extension>

	<Extension path = "/MonoDevelop/TypeSystem/AmbienceTooltipProviders">
		<Provider mimeType="text/x-csharp" class = "MonoDevelop.CSharp.CSharpAmbience" />
	</Extension>

	<Extension path = "/MonoDevelop/TypeSystem/Parser">
		<Parser class="MonoDevelop.CSharp.Parser.TypeSystemParser" mimeType = "text/x-csharp" />
	</Extension>

	<Extension path = "/MonoDevelop/TypeSystem/FoldingParser">
		<Parser class = "MonoDevelop.CSharp.Parser.CSharpFoldingParser" mimeType="text/x-csharp" />
	</Extension>

	<Extension path = "/MonoDevelop/TypeSystem/CodeGenerators">
		<Generator class="MonoDevelop.CSharp.Refactoring.CSharpCodeGenerator" mimeType = "text/x-csharp" />
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/PolicySets/Mono" >
		<Policies resource="MonoDevelopCSharpPolicy.xml" />
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/PolicySets/MonoDefault" >
		<Policies resource="MonoCSharpPolicy.xml" />
		<Policies resource="MonoTextStylePolicy.xml" />
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/PolicySets" >
		<PolicySet id="KR" _name="K&amp;R style" allowDiffSerialize="false">
			<Policies resource="KRCSharpPolicy.xml" />
			<Policies resource="InvariantTextStylePolicy.xml" />
		</PolicySet>

		<PolicySet id="1TBS" _name="SharpDevelop style (1TBS)" allowDiffSerialize="false">
			<Policies resource="KRCSharpPolicy.xml" />
			<Policies resource="InvariantTextStylePolicy.xml" />
		</PolicySet>
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/PolicySets/VisualStudio" >
		<Policies resource="AllmanCSharpPolicy.xml" />
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/Gui/MimeTypePolicyPanels">
		<Panel id = "CSharpFormatting" _label = "C# Format" mimeType="text/x-csharp" class = "MonoDevelop.CSharp.Formatting.CSharpFormattingPolicyPanel" />
	</Extension>

<!--
	<Extension path = "/MonoDevelop/Refactoring/CodeIssues">
		<CodeIssue mimeType="text/x-csharp" severity = "Error" class="MonoDevelop.CSharp.Refactoring.CodeIssues.MonoTODOIssue"/>
	</Extension> -->

	<Extension path = "/MonoDevelop/Ide/TextEditorResolver">
		<Resolver class = "MonoDevelop.CSharp.Resolver.TextEditorResolverProvider" mimeType="text/x-csharp" />
	</Extension>

	<Extension path = "/MonoDevelop/Ide/Commands/TextEditor">
		<Command id = "MonoDevelop.CSharp.Highlighting.MoveToUsagesCommand.PrevUsage"
		         defaultHandler = "MonoDevelop.CSharp.Highlighting.MoveToPrevUsageHandler"
		         shortcut = "Ctrl|Shift|Up"
		         macShortcut = "Control+Alt+Meta+Up"
		         _label = "_Move to prev usage"/>
		<Command id = "MonoDevelop.CSharp.Highlighting.MoveToUsagesCommand.NextUsage"
		         defaultHandler = "MonoDevelop.CSharp.Highlighting.MoveToNextUsageHandler"
		         shortcut = "Ctrl|Shift|Down"
		         macShortcut = "Control+Alt+Meta+Down"
		         _label = "_Move to next usage"/>
	</Extension>

	<Extension path = "/MonoDevelop/Refactoring/CodeGenerators">
		<Class class = "MonoDevelop.CodeGeneration.CreateConstructorGenerator" />
		<Class class = "MonoDevelop.CodeGeneration.ReadonlyPropertyGenerator" />
		<Class class = "MonoDevelop.CodeGeneration.PartialGenerator" />
		<Class class = "MonoDevelop.CodeGeneration.OverrideMembersGenerator" />
		<Class class = "MonoDevelop.CodeGeneration.ToStringGenerator" />
		<Class class = "MonoDevelop.CodeGeneration.RaiseEventMethodGenerator" />
<!--		<Class class = "MonoDevelop.CodeGeneration.EqualityMembersGenerator" /> -->
		<Class class = "MonoDevelop.CodeGeneration.WriteLineGenerator" />
	</Extension>

	<Extension path = "/MonoDevelop/Ide/Editor/TooltipProviders">
		<Provider id="CSharp" class="MonoDevelop.SourceEditor.LanguageItemTooltipProvider" mimeType="text/x-csharp" />
	</Extension>

	<Extension path = "/MonoDevelop/Ide/CompletionCharacters">
		<Complete language="C#" commitOnSpace="True" commitChars="{}[]().,:;+-*/%&amp;|^!~=&lt;&gt;?@#'&quot;\"/>
	</Extension>

	<Extension path = "/MonoDevelop/SourceEditor2/ContextMenu/Editor">
		<Condition id="FileType" mimeTypes="text/x-csharp">
			<ItemSet id = "MonoDevelop.Refactoring.RefactoryCommands.QuickFixMenu" _label = "Quick Fix" autohide = "true" insertafter="MonoDevelop.SourceEditor.SourceEditorCommands.MarkerOperations" insertbefore="MonoDevelop.Debugger.DebugCommands.ExpressionEvaluator">
				<CommandItem id = "MonoDevelop.Refactoring.RefactoryCommands.QuickFixMenu" />
			</ItemSet>
			<CommandItem id = "MonoDevelop.Refactoring.RefactoryCommands.CurrentRefactoryOperations" />

			<ItemSet id = "Navigate" _label = "Navigate">
				<CommandItem id = "MonoDevelop.Refactoring.RefactoryCommands.FindAllReferences"/>
				<CommandItem id = "MonoDevelop.Refactoring.Navigation.FindBaseSymbols"/>
				<CommandItem id = "MonoDevelop.Refactoring.Navigation.FindDerivedSymbols"/>
				<SeparatorItem id = "Separator1" />

				<CommandItem id = "MonoDevelop.CSharp.Navigation.FindExtensionMethods"/>
				<CommandItem id = "MonoDevelop.CSharp.Navigation.FindMemberOverloads"/>
				<CommandItem id = "MonoDevelop.CSharp.Navigation.FindImplementingMembers"/>
			</ItemSet>
		</Condition>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/BraceMatcher">
		<Matcher class="MonoDevelop.CSharp.CSharpBraceMatcher" mimeType="text/x-csharp"/>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/ContextMenu/ProjectPad">
		<Condition id="ItemType" value="ProjectReference|Reference">
			<CommandItem id = "MonoDevelop.CSharp.Refactoring.FindProjectReferenceUsages" />
		</Condition>
	</Extension>

	<Extension path = "/MonoDevelop/Refactoring/FindReferencesProvider">
		<Class class="MonoDevelop.CSharp.Refactoring.CSharpFindReferencesProvider" />
	</Extension>

	<Extension path = "/MonoDevelop/Refactoring/FindReferenceUsagesProvider">
		<Class class="MonoDevelop.CSharp.Refactoring.CSharpFindReferenceUsagesProvider" />
	</Extension>

	<Extension path = "/MonoDevelop/Refactoring/JumpToDeclarationHandler">
		<Class class="MonoDevelop.CSharp.Refactoring.CSharpJumpToDeclarationHandler" />
	</Extension>

	<Extension path = "/MonoDevelop/UnitTesting/NUnitSourceCodeLocationFinder">
		<Class class="MonoDevelop.CSharp.UnitTests.CSharpNUnitSourceCodeLocationFinder" />
	</Extension>

	<Extension path="/MonoDevelop/Ide/TypeService/MefHostServices">
		<Assembly file="MonoDevelop.CSharpBinding.dll"/>
	</Extension>

	<Extension path="/MonoDevelop/Ide/TypeService/OptionProviders">
		<Class class="MonoDevelop.CSharp.OptionProvider.EditorConfigDocumentOptionsProviderFactory"/>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/GlobalOptionsDialog/TextEditor/Behavior">
		<Section id="CSharpOnTheFlyFormattingPanel" insertbefore="Formatting" _label="C#" fill="true" class="MonoDevelop.SourceEditor.OptionPanels.OnTheFlyFormattingPanel" icon="md-prefs-code-formatting" />
  </Extension>

	<Extension path = "/MonoDevelop/Ide/GlobalOptionsDialog/TextEditor/Analysis/C#">
		<Panel id="CodeStylePanel" _label="Code Style" fill="true" class="MonoDevelop.CSharp.OptionProvider.CodeStylePage" grouping="Tab" icon="md-prefs-code-rules" insertbefore="CodeActions" />
	</Extension>
	
	<Extension path = "/MonoDevelop/TextEditor/CommandMapping">
		<Map id="MonoDevelop.CSharp.Refactoring.Commands.SortAndRemoveImports" argsType="@MonoDevelop.CSharp.Refactoring.CommandArgsFactories.CreateSortAndRemoveUnnecessaryImportsCommandArgs" />
	</Extension>
</ExtensionModel>
